package com.alander.nexusgo.itinerary.service;

import com.alander.nexusgo.common.model.dto.ItineraryCollaboratorListDTO;
import com.alander.nexusgo.common.model.vo.ItineraryCollaboratorVO;
import com.alander.nexusgo.itinerary.model.entity.ItineraryCollaborator;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author alander
*/
public interface ItineraryCollaboratorService extends IService<ItineraryCollaborator> {
    /**
     * 添加协作者
     * @param itineraryCollaborator 协作者信息
     * @param userId 当前用户ID
     * @return 协作者VO
     */
    ItineraryCollaboratorVO createCollaborator(ItineraryCollaborator itineraryCollaborator, Long userId);

    /**
     * 更新协作者信息
     * @param id 协作者ID
     * @param itineraryCollaborator 更新的协作者信息
     * @param userId 当前用户ID
     * @return 协作者VO
     */
    ItineraryCollaboratorVO updateCollaborator(Long id, ItineraryCollaborator itineraryCollaborator, Long userId);

    /**
     * 删除协作者
     * @param id 协作者ID
     * @param userId 当前用户ID
     * @return 是否删除成功
     */
    boolean deleteCollaborator(Long id, Long userId);

    /**
     * 获取协作者详情
     * @param id 协作者ID
     * @return 协作者VO
     */
    ItineraryCollaboratorVO getCollaboratorById(Long id);

    /**
     * 查询协作者列表
     * @param itineraryCollaboratorListDTO 查询条件
     * @return 协作者VO列表
     */
    List<ItineraryCollaboratorVO> listCollaborators(ItineraryCollaboratorListDTO itineraryCollaboratorListDTO);
}